package com.xinyi.reactivemvvmkt.sources.remote.impl

import com.alibaba.fastjson.JSON
import com.xinyi.httpdemo.execute.ExecuteAwait
import com.xinyi.httpdemo.model.HttpMethod
import com.xinyi.httpdemo.model.HttpParams
import com.xinyi.httpdemo.model.RequestConfigData
import com.xinyi.httpdemo.model.ResponseData
import com.xinyi.reactivemvvmkt.consts.NetURL
import com.xinyi.reactivemvvmkt.model.NeteaseCommentModel
import com.xinyi.reactivemvvmkt.model.request.NeteaseCommentRequest
import com.xinyi.reactivemvvmkt.sources.remote.NeteaseApi
import javax.inject.Inject

/**
 * @author 杨耿雷
 * @date 2024/9/24 21:17
 * @description 网抑云接口实现类
 */
class NeteaseApiImpl @Inject constructor() : NeteaseApi {

    override suspend fun getNeteaseComment(request: NeteaseCommentRequest): ResponseData {
        return ExecuteAwait.execute(RequestConfigData().apply { // 创建请求配置数据
            // 设置请求参数
            params = HttpParams().apply {
                // TODO 这里为表单请求，一般情况下这里都是直接参数转json了
                put("format", request.map["format"].toString())
            }
            // 设置请求路径
            path = NetURL.NETEASE_COMMENTS_URL
            // 设置请求方式
            method = HttpMethod.GET
        }).also {
            // 解析数据
            it.data = JSON.parseObject(it.data.toString(), NeteaseCommentModel::class.java)
        }
    }
}